package com.lyb.spzx.manager.helper;

import com.lyb.spzx.model.dto.system.system.SysMenu;

import java.util.ArrayList;
import java.util.List;

/**
 * 构建树形菜单工具类
 */
public class MenuHelper {

    //使用递归方法创建菜单
    public static List<SysMenu> buildTrees(List<SysMenu> sysMenus){
        List<SysMenu> trees = new ArrayList<>();
        for (SysMenu sysMenu : sysMenus) {
            if (sysMenu.getParentId().intValue() == 0){
                trees.add(findChilder(sysMenu,sysMenus));
            }
        }
        return trees;
    }

    //递归查找子节点
    private static SysMenu findChilder(SysMenu sysMenu, List<SysMenu> sysMenus) {
        sysMenu.setChildren(new ArrayList<SysMenu>());
        for (SysMenu menu : sysMenus) {
            if (sysMenu.getId().intValue() == menu.getParentId().intValue()){
                sysMenu.getChildren().add(findChilder(menu,sysMenus));
            }
        }
        return sysMenu;
    }
}
